﻿Imports MySql.Data.MySqlClient
Public Class dOrden
    Private con As MySqlConnection
    Private comando As MySqlCommand
    Dim lector As MySqlDataReader
    Private lector2 As MySqlDataAdapter
    Private data As DataSet
    'llamar datos de la DB
    Public Function CargarMysql(ByVal Campo As String) As ArrayList
        Dim resultado As ArrayList
        resultado = New ArrayList
        con = Conexion.open()
        comando = New MySqlCommand("Select codigo_estudio, codigo_empresa, fecha_solicitud, fecha_visita, fecha_entrega, codigo_analista, codigo_usuario  orden_estudio where codigo_estudio='" & Campo & "'", con)
        lector = comando.ExecuteReader
        If lector.Read() = True Then
            resultado.Add(lector.GetString(0))
            resultado.Add(lector.GetString(1))
            resultado.Add(lector.GetString(2))
            resultado.Add(lector.GetString(3))
            resultado.Add(lector.GetString(4))
            resultado.Add(lector.GetString(5))
            resultado.Add(lector.GetString(6))
        End If
        Conexion.Close(con)
        lector.Close()
        Return resultado
    End Function
    'propiedades consultar ANAlistas
    Public Function ConsultarMysql(ByVal Campo As String) As DataSet
        con = Conexion.open()
        comando = New MySqlCommand("select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where orden_estudio.codigo_estudio=1 and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista", con)
        lector2 = New MySqlDataAdapter(comando)
        data = New DataSet
        lector2.Fill(data)
        Conexion.Close(con)
        Return data
    End Function
    'criterio de busqueda por usuario empresa anlista
    Public Function ConsultarCriterio1(ByVal Criterio As String, ByVal campo As String) As DataSet
        Dim consulta As String

        con = Conexion.open()
        Select Case Criterio
            Case "Usuarios"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) like '" & "%" & campo & "%" & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case "Empresas"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where empresas.razon_social like '" & "%" & campo & "%" & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case "Analistas"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where analistas.nombre_analista like '" & "%" & campo & "%" & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case Else
                consulta = ""
        End Select
        comando = New MySqlCommand(consulta, con)
        lector2 = New MySqlDataAdapter(comando)
        data = New DataSet

        lector2.Fill(data)
        Conexion.Close(con)
        Return data
    End Function
    'criterio de busqueda por estado
    Public Function ConsultarCriterio2(ByVal Criterio As String, ByVal Estado As String, ByVal campo As String) As DataSet
        Dim consulta As String
        con = Conexion.open()
        Select Case Criterio
            Case "Usuarios"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) like '" & "%" & campo & "%" & "' and orden_estudio.estado_orden='" & Estado & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case "Empresas"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where empresas.razon_social like '" & "%" & campo & "%" & "' and orden_estudio.estado_orden='" & Estado & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case "Analistas"
                consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where analistas.nombre_analista like '" & "%" & campo & "%" & "' and orden_estudio.estado_orden='" & Estado & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
            Case Else
                consulta = ""
        End Select
        comando = New MySqlCommand(consulta, con)
        lector2 = New MySqlDataAdapter(comando)
        data = New DataSet

        lector2.Fill(data)
        Conexion.Close(con)
        Return data
    End Function
    'criterio de busqueda por estado
    Public Function ConsultarCriterio3(ByVal Criterio As String, ByVal CriterioFecha As String, ByVal campo As String, ByVal fecha_Inicial As Date, ByVal Fecha_Final As Date) As DataSet
        Dim consulta As String
        con = Conexion.open()
        Select Case Criterio
            Case "Usuarios"
                Select Case CriterioFecha
                    Case "Fecha Solicitud"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) like '" & "%" & campo & "%" & "' and orden_estudio.fecha_solicitud between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Visita"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) like '" & "%" & campo & "%" & "' and orden_estudio.fecha_visita between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Entrega"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) like '" & "%" & campo & "%" & "' and orden_estudio.fecha_entrega between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case Else
                        consulta = ""
                End Select

            Case "Empresas"
                Select Case CriterioFecha
                    Case "Fecha Solicitud"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where empresas.razon_social like '" & "%" & campo & "%" & "' and orden_estudio.fecha_solicitud between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Visita"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where empresas.razon_social like '" & "%" & campo & "%" & "' and orden_estudio.fecha_visita between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Entrega"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where empresas.razon_social like '" & "%" & campo & "%" & "' and orden_estudio.fecha_entrega between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case Else
                        consulta = ""
                End Select
            Case "Analistas"
                Select Case CriterioFecha
                    Case "Fecha Solicitud"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where analistas.nombre_analista like '" & "%" & campo & "%" & "' and orden_estudio.fecha_solicitud between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Visita"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where analistas.nombre_analista like '" & "%" & campo & "%" & "' and orden_estudio.fecha_visita between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case "Fecha Entrega"
                        consulta = "select orden_estudio.codigo_estudio, concat(usuarios.primer_nombre, ' ', usuarios.segundo_nombre,' ', usuarios.primer_apellido,' ', usuarios.segundo_apellido) as Nombre, orden_estudio.fecha_solicitud, orden_estudio.fecha_visita, orden_estudio.fecha_entrega, empresas.razon_social, analistas.nombre_analista, orden_estudio.estado_orden  from orden_estudio, empresas, usuarios, analistas where analistas.nombre_analista like '" & "%" & campo & "%" & "' and orden_estudio.fecha_entrega between '" & Format(fecha_Inicial, "yyyy/MM/dd") & "' and '" & Format(Fecha_Final, "yyyy/MM/dd") & "' and orden_estudio.codigo_empresa=empresas.codigo_empresa and orden_estudio.codigo_usuario=usuarios.codigo_usuario and orden_estudio.codigo_analista=analistas.codigo_analista"
                    Case Else
                        consulta = ""
                End Select
            Case Else
                consulta = ""
        End Select
        comando = New MySqlCommand(consulta, con)
        lector2 = New MySqlDataAdapter(comando)
        data = New DataSet

        lector2.Fill(data)
        Conexion.Close(con)
        Return data
    End Function
End Class
